#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>

//判断一个字符串是否是由另外一个字符串旋转得到的
// 方法二
//有效利用库函数
int is_string_rotate(char* str1, char* str2)
{
	//长度不相等的情况下肯定不是旋转得到的
	if (strlen(str1) != strlen(str2))
	{
		return 0;
	}
	//给自己追加一个自己的字符串
	int len=strlen(str1);
	strncat(str1, str1, len);
	//判断是否为子串
	char* ret=strstr(str1, str2);
	if (ret == NULL)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}
int main()
{
	char arr1[20] = "ABCDEF";
	char arr2[] = "BCDEFA";
	int ret=is_string_rotate(arr1,arr2);
	if (ret == 1)
	{
		printf("Yes!\n");
	}
	else
	{
		printf("No!\n");
	}
	return 0;
}
////方法一，暴力求解法，穷举
//int is_string_rotate(char* str1,char* str2)
//{
//	int i = 0;
//	int n = strlen(str1);
//
//	for (i = 0; i < n; i++)//旋转k次
//	{
//		//每次拿出一个字符
//		char temp = *str1;
//		//剩下的字符往前面移动一个
//		int j = 0;
//		for (j = 0; j < n - 1; j++)
//		{
//			*(str1 + j) = *(str1 + j + 1);
//		}
//		//把拿出的字符放在最后一个
//		*(str1 + n - 1) = temp;
//		//判断
//		if (strcmp(str1, str2) == 0)
//			return 1;
//		else
//			return 0;
//	}
//}
//int main()
//{
//	char arr1[] = "ABCDEF";
//	char arr2[] = "BCDEFA";
//	int ret=is_string_rotate(arr1,arr2);
//	if (ret == 1)
//		printf("Yes");
//	else
//		printf("No");
//	return 0;
//}